home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 142
/
Gekkan Dennou Club - 2000.3 Vol. 142 (Japan).7z
/
Gekkan Dennou Club - 2000.3 Vol. 142 (Japan) (Track 1).bin
/
tools
/
s_tool
/
move2.c
< prev
next >
Wrap
Text File
|
1998-08-31
|
20KB
|
1,024 lines
#include "JX250.H"
#include <sys\iocs.h>
#include <sys\dos.h>
#include <sys\scsi.h>
#include <stdio.h>
#include <stdlib.h>
#include <_tnb.c>
static short chgsize=0; //0:x 1:y
/************************************************************
上 ボタンチェック
[out] r= 0; 正常終了
1; キャンセル終了
99; 終了
*************************************************************/
int click_botton1( ty,xx,yy )
int ty,xx,yy;
{
int i,r;
UNchar buf[256];
UNchar *M;
double b,c;
void cb1_sub1(),cb1_sub2(),cb1_sub3(),cb1_sub4(),cb1_sub6(),cb1_sub7(),cb1_sub8(),cb1_sub9();
r=0;
switch( ty ){
case('b'):
//------------- 原点X
r++;
case('a'):
r++;
case('1'):
if ( ty=='1' ) xx=17*16;
r=cb1_sizesub1(r,xx,yy,PreX1,0,PreX2,cb1_sub1);
if ( r==0 && ty=='1' )
r=click_botton1( '2',xx+80,yy );
break;
case('d'):
//------------- 原点Y
r++;
case('c'):
r++;
case('2'):
if ( ty=='2' ) xx=22*16;
r=cb1_sizesub1(r,xx,yy,PreY1,0,PreY2,cb1_sub2);
if ( r==0 && ty=='2' )
r=click_botton1( '3',xx-80,yy+32 );
break;
case('f'):
//------------- 幅
r++;
case('e'):
r++;
case('3'):
if ( ty=='3' ) xx=17*16;
r=cb1_sizesub1(r,xx,yy,PreX2-PreX1,1,(10224-PreX1),cb1_sub3);
if ( r==0 && ty=='3' )
r=click_botton1( '4',xx+80,yy );
break;
case('h'):
//------------- 高さ
r++;
case('g'):
r++;
case('4'):
if ( ty=='4' ) xx=22*16;
r=cb1_sizesub1(r,xx,yy,PreY2-PreY1,1,(14064-PreY1),cb1_sub4);
break;
case('5'):
//-------------- 比率
//-- DPI
b=(double)ScanDpiY/(double)ScanDpiX;
if ( b<10. )
sprintf(buf,"%.2f",b ); //sprintf(buf,"%5.2f",b );
elif ( b<100. )
sprintf(buf,"%.1f",b );
else sprintf(buf,"%.f",b );
M=(void*)InputStr(17*16+2,(yy&0xFFF0)+2,buf,5,0,2);
if ( M[0]==0 && M[0]==0xFF ){
;
} else {
c=atof(M);
if ( c>=0.01 && c<32.0 ){
if ( ImageDirec==0 ){ // 0;縦 1;横
ScanDpiX=ScanDpiY/c;
} else {
ScanDpiY=ScanDpiX*c;
}
if ( CalcScanDD()!=0 )
CalcScanDot();
}
}
ScanSetMode(-1);
break;
case('A'):
//----------------- ドット
PosSetDraw(PreX1,PreY1,PreX2,PreY2,0);
break;
case('B'):
//----------------- センチ
PosSetDraw(PreX1,PreY1,PreX2,PreY2,1);
break;
case('C'):
//----------------- インチ
PosSetDraw(PreX1,PreY1,PreX2,PreY2,2);
break;
case('j'):
//------------- 取り込みX DOT
r++;
case('i'):
r++;
case('6'):
//ScanSetDraw(0,-1,-1);
if ( ty=='6' ) xx=20*16;
i=ScanDotX;
r=cb1_sizesub2(r,xx,yy,0,cb1_sub6);
if ( r==0 && i!=ScanDotX )
chgsize=0;
if ( r==0 && ty=='6' )
r=click_botton1( '7',xx,yy+16 );
break;
case('l'):
//------------- 取り込みY DOT
r++;
case('k'):
r++;
case('7'):
//ScanSetDraw(0,-1,-1);
if ( ty=='7' ) xx=20*16;
i=ScanDotY;
r=cb1_sizesub2(r,xx,yy,1,cb1_sub7);
if ( r==0 && i!=ScanDotY )
chgsize=1;
break;
case('n'):
//------------- 取り込みX DPI
r++;
case('m'):
r++;
case('8'):
//ScanSetDraw(1,-1,-1);
if ( ty=='8' ) xx=20*16;
i=ScanDpiX;
r=cb1_sizesub2(r,xx,yy,2,cb1_sub8);
if ( r==0 && i!=ScanDpiX )
chgsize=0;
if ( r==0 && ty=='8' )
r=click_botton1( '9',xx,yy+16 );
break;
case('p'):
//------------- 取り込みY DPI
r++;
case('o'):
r++;
case('9'):
//ScanSetDraw(1,-1,-1);
if ( ty=='9' ) xx=20*16;
i=ScanDpiY;
r=cb1_sizesub2(r,xx,yy,3,cb1_sub9);
if ( r==0 && i!=ScanDpiY )
chgsize=1;
break;
case('D'):
//------------- 取り込みモード
ScanSetMode(0);
break;
case('E'):
ScanSetMode(1);
break;
}
return(r);
}
/*************************************
(上)上部サブルーチン
*************************************/
int cb1_sizesub1(ty,xx,yy,ii,ll,hh,sub)
int ty,xx,yy,ii,hh,ll;
void (*sub)();
{
int i,j,l,h,s,r;
UNchar *M;
UNchar buf[128];
if ( PreUnit==0 ){
// dot
i=(ii+10-1)/10;
l= ll /10;
h= hh /10;
j=1;
s=1;
} elif ( PreUnit==1 ){
// cm
i=(ii*10 *216 +10224-1)/10224;
l= ll*10 *216 /10224;
h= hh*10 *216 /10224;
j=2;
s=10;
M="%.1f";
} else {
// inch
i=(ii*100 *852 +1022400-1)/1022400;
l= ll*100 *852 /1022400;
h= hh*100 *852 /1022400;
j=2;
s=100;
M="%.2f";
}
if ( ty==0 ){
if ( j==1 )
sprintf(buf,"%d",i); //sprintf(buf,"%5d",i);
else sprintf(buf,M,(double)i/(double)s);
M=(void*)InputStr((xx&0xFFF0)+2,(yy&0xFFF0)+2,buf,5,0,j);
if ( M[0]==0 && M[1]==0xFF ){
PosSetDraw(-1,-1,-1,-1,-1);
r=1;
} else {
i=(int)(atof(M)*(double)s);
if ( i<l || i>=h ){
PosSetDraw(-1,-1,-1,-1,-1);
r=1;
} else {
(*sub)(i);
r=0;
}
}
} else {
r=kazu_move(((ty==1)?xx:xx-16)&0xFFF0,yy&0xFFF0,0,i,l,h-1,sub);
}
return(r);
}
/*+++++++++++++++++++++++++++++++*/
void cb1_sub1(int l)
{
int i;
l=cb1_sub1234_sub(l);
i=PreX2+(l-PreX1);
if ( i>=10224 )
i=10224;
PosSetDraw(l,PreY1,i,PreY2,-1);
CalcScanPara();
}
/*++++++++++*/
void cb1_sub2(int l)
{
int i;
l=cb1_sub1234_sub(l);
i=PreY2+(l-PreY1);
if ( i>=14064 )
i=14064;
PosSetDraw(PreX1,l,PreX2,i,-1);
CalcScanPara();
}
/*++++++++++*/
void cb1_sub3(int l)
{
l=cb1_sub1234_sub(l);
PosSetDraw(PreX1,PreY1,PreX1+l,PreY2,-1);
CalcScanPara();
}
/*++++++++++*/
void cb1_sub4(int l)
{
l=cb1_sub1234_sub(l);
PosSetDraw(PreX1,PreY1,PreX2,PreY1+l,-1);
CalcScanPara();
}
/*+++++*/
int cb1_sub1234_sub(int l)
{
if ( PreUnit==0 ){
// dot
l=l*10;
} elif ( PreUnit==1 ){
// cm
l=l*10224/216 /10;
} else { // inch
l=l*1022400/852 /100;
}
return(l);
}
/*************************************
(上)下部サブルーチン
*************************************/
int cb1_sizesub2(ty,xx,yy,z,sub)
int ty,xx,yy,z;
void (*sub)();
{
int i,j,l,h,s,r;
UNchar *M;
UNchar buf[128];
if ( z<=1 ){ // スキャン値の単位 0;DOT 1;DPI
// DOT
i=(z==0)?(ScanDotX/DOTB):(ScanDotY/DOTB);
l=30;
//h=13632; // 1600dpi*8.52inch
h=4096; // 1600dpi*8.52inch
j=1;
s=1;
sprintf(buf,"%d",i);
} else {
// DPI
i=(z==2)?(ScanDpiX/1000):(ScanDpiY/1000);
l=16*DPIB/1000;
if ( jxscanner==_JX250_ || jxscanner==_JX270_ )
h=1591*DPIB/1000;
elif ( jxscanner==_JX325_ )
h=599*DPIB/1000;
else h=2400*DPIB/1000; // 350,330
j=2;
s=DPIB/1000;
sprintf(buf,"%.1f",(double)i/(double)s);
}
if ( ty==0 ){
M=(void*)InputStr(320+2,(yy&0xFFF0)+2,buf,5,0,j);
CRTVDISP();
if ( M[0]==0 && M[1]==0xFF ){
ScanSetMode(-1);
r=1;
} else {
i=(int)(atof(M)*(double)s);
if ( i<l || i>h ){
ScanSetMode(-1);
r=1;
} else {
(*sub)(i);
r=0;
}
}
} else {
r=kazu_move(((ty==1)?xx:xx-16)&0xFFF0,yy&0xFFF0,0,i,l,h,sub);
}
return(r);
}
/*+++++++++++*/
void cb1_sub6(int l)
{
ScanSetDraw(0,l*DOTB,-1);
PosSetDraw(PreX1,PreY1,PreX2,PreY2,-1);
}
/*++++++++++*/
void cb1_sub7(int l)
{
ScanSetDraw(0,-1,l*DOTB);
PosSetDraw(PreX1,PreY1,PreX2,PreY2,-1);
}
/*+++++++++++*/
void cb1_sub8(int l)
{
ScanSetDraw(1,l*1000,-1);
PosSetDraw(PreX1,PreY1,PreX2,PreY2,-1);
}
/*++++++++++*/
void cb1_sub9(int l)
{
ScanSetDraw(1,-1,l*1000);
PosSetDraw(PreX1,PreY1,PreX2,PreY2,-1);
}
/************************************************************
左下群 ボタンチェック
[out] r= 0; 正常終了
1; キャンセル終了
99; 終了
*************************************************************/
int click_botton2( ty,xx,yy )
int ty,xx,yy;
{
int r,x,y;
void cb2_sub1(),cb2_sub2(),cb2_sub3(),cb2_sub4(),cb2_sub6(),cb2_sub7();
r=0;
switch( ty ){
case('1'):
//------------ カラー
ChanImageMode(0);
break;
case('2'):
//------------ 白黒
ChanImageMode(1);
break;
case('9'):
//------------ 24bit
if ( mat_vadds!=0 )
break;
FullColor=1;
ImageColMode=-1;
ChanImageColMode(0);
break;
case('3'):
//------------ 多値
FullColor=0;
ImageColMode=-1;
ChanImageColMode(0);
break;
case('4'):
//------------ 二値
FullColor=0;
ChanImageColMode(1);
break;
case('5'):
case('6'):
//------------ 縦/横
if ( ty=='5' ){
if ( ImageDirec==0 )
break;
ChanImageDirec(0);
} else {
if ( ImageDirec==1 )
break;
ChanImageDirec(1);
}
x=ScanDotX;
y=ScanDotY;
if ( AspMode==0 ){
// 2:3
ScanDotX=(y*2+1)/3;
ScanDotY=(x*3+2)/2;
} else {
// 1:1
ScanDotX=y;
ScanDotY=x;
}
CalcScanDpi();
PosSetDraw(PreX1,PreY1,PreX2,PreY2,-1);
ScanSetMode(-1);
break;
case('7'):
//------------ ポジ
ChanPojiNegaMode(0);
break;
case('8'):
//------------ ネガ
ChanPojiNegaMode(1);
break;
}
return(r);
}
/************************************************************
右下群 ボタンチェック
[out] r= 0; 正常終了
1; キャンセル終了
99; 終了
*************************************************************/
int click_botton3( ty,xx,yy )
int ty,xx,yy;
{
int r,litup;
UNchar buf[256];
void cb3_sub1(),cb3_sub2(),cb3_sub3(),cb3_sub4(),cb3_sub5(),cb3_sub6(),cb3_sub7(),cb3_sub7_();
void cb3_sub8(),cb3_sub9(),cb3_sub0();
litup=1000;
if ( jxscanner==_JX350_ )
litup=600;
r=0;
switch( ty ){
case('A'):
//------------- 濃度補正
r++;
case('b'):
r++;
case('a'):
r++;
case('1'):
if ( ty=='1' ) xx=23*16;
if ( ty=='A' ) xx=27*16;
if ( ImageColMode!=0 ) // 0;多値 1;二値
break;
sprintf(buf,"%d",Bright-128 );
r=cb3_sizesub1(r,xx,yy,1,Bright-128,-127,127,buf,cb3_sub1);
break;
case('B'):
//------------- 明度 R | BW
r++;
case('d'):
r++;
case('c'):
r++;
case('2'):
if ( ty=='2' ) xx=23*16;
if ( ty=='B' ) xx=27*16;
if ( ImageMode==0 ){
// カラー
sprintf(buf,"%d",LightR-0x8000 );
r=cb3_sizesub1(r,xx,yy,1,LightR-0x8000,-40,litup,buf,cb3_sub2);
if ( r==0 && ty=='2' )
r=click_botton3( '3',xx,yy+16 );
} else {
sprintf(buf,"%d",LightM-0x8000 );
r=cb3_sizesub1(r,xx,yy,1,LightM-0x8000,-40,litup,buf,cb3_sub2);
}
break;
case('C'):
//------------- 明度 G
r++;
case('f'):
r++;
case('e'):
r++;
case('3'):
if ( ty=='3' ) xx=23*16;
if ( ty=='C' ) xx=27*16;
if ( ImageMode==0 ){
// カラー
sprintf(buf,"%d",LightG-0x8000 );
r=cb3_sizesub1(r,xx,yy,1,LightG-0x8000,-40,litup,buf,cb3_sub3);
if ( r==0 && ty=='3' )
r=click_botton3( '4',xx,yy+16 );
}
break;
case('D'):
//------------- 明度 B
r++;
case('h'):
r++;
case('g'):
r++;
case('4'):
if ( ty=='4' ) xx=23*16;
if ( ty=='D' ) xx=27*16;
if ( ImageMode==0 ){
// カラー
sprintf(buf,"%d",LightB-0x8000 );
r=cb3_sizesub1(r,xx,yy,1,LightB-0x8000,-40,litup,buf,cb3_sub4);
}
break;
case('E'):
//------------- γ R | BW
r++;
case('j'):
r++;
case('i'):
r++;
case('5'):
if ( ty=='5' ) xx=23*16;
if ( ty=='E' ) xx=27*16;
if ( ImageColMode!=0 )
break;
if ( ImageMode==0 ){
// カラー
sprintf(buf,"%.2f",(double)GammaR/100. );
r=cb3_sizesub1(r,xx,yy,100,GammaR,1,999,buf,cb3_sub5);
if ( r==0 && ty=='5' )
r=click_botton3( '6',xx,yy+16 );
} else {
sprintf(buf,"%.2f",(double)GammaM/100. );
r=cb3_sizesub1(r,xx,yy,100,GammaM,1,999,buf,cb3_sub5);
}
break;
case('F'):
//------------- γ G
r++;
case('l'):
r++;
case('k'):
r++;
case('6'):
if ( ty=='6' ) xx=23*16;
if ( ty=='F' ) xx=27*16;
if ( ImageColMode!=0 )
break;
if ( ImageMode==0 ){
// カラー
sprintf(buf,"%.2f",(double)GammaG/100. );
r=cb3_sizesub1(r,xx,yy,100,GammaG,1,999,buf,cb3_sub6);
if ( r==0 && ty=='6' )
r=click_botton3( '7',xx,yy+16 );
}
break;
case('G'):
//------------- γ B
r++;
case('n'):
r++;
case('m'):
r++;
case('7'):
if ( ty=='7' ) xx=23*16;
if ( ty=='G' ) xx=27*16;
if ( ImageColMode!=0 )
break;
if ( ImageMode==0 ){
// カラー
sprintf(buf,"%.2f",(double)GammaB/100. );
r=cb3_sizesub1(r,xx,yy,100,GammaB,1,999,buf,cb3_sub7);
}
break;
case('H'):
//------------- γ ALL
r++;
case('p'):
r++;
case('o'):
r++;
if ( ty=='H' ) xx=27*16;
if ( ImageColMode!=0 )
break;
if ( ImageMode==0 ){
// カラー
sprintf(buf,"%.2f",(double)((GammaR+GammaG+GammaB)/3)/100. );
r=cb3_sizesub1(r,xx,yy,100,(GammaR+GammaG+GammaB)/3,1,999,buf,cb3_sub7_);
BarView(368/16+4,384/16,-1);
}
break;
case('I'):
//------------- しきい値 R | BW
r++;
case('r'):
r++;
case('q'):
r++;
case('8'):
if ( ty=='8' ) xx=23*16;
if ( ty=='I' ) xx=27*16;
if ( ImageColMode==0 )
break;
if ( ImageMode==0 ){
// カラー
sprintf(buf,"%d",ThreR);
r=cb3_sizesub1(r,xx,yy,1,ThreR,0,255,buf,cb3_sub8);
if ( r==0 && ty=='8' )
r=click_botton3( '9',xx,yy+16 );
} else {
sprintf(buf,"%d",ThreM);
r=cb3_sizesub1(r,xx,yy,1,ThreM,0,255,buf,cb3_sub8);
}
break;
case('J'):
//------------- しきい値 G
r++;
case('t'):
r++;
case('s'):
r++;
case('9'):
if ( ty=='9' ) xx=23*16;
if ( ty=='J' ) xx=27*16;
if ( ImageColMode==0 )
break;
if ( ImageMode==0 ){
// カラー
sprintf(buf,"%d",ThreG);
r=cb3_sizesub1(r,xx,yy,1,ThreG,0,255,buf,cb3_sub9);
if ( r==0 && ty=='9' )
r=click_botton3( '0',xx,yy+16 );
}
break;
case('K'):
//------------- しきい値 B
r++;
case('v'):
r++;
case('u'):
r++;
case('0'):
if ( ty=='0' ) xx=23*16;
if ( ty=='K' ) xx=27*16;
if ( ImageColMode==0 )
break;
if ( ImageMode==0 ){
// カラー
sprintf(buf,"%d",ThreB);
r=cb3_sizesub1(r,xx,yy,1,ThreB,0,255,buf,cb3_sub0);
}
break;
case('W'):
//----------- ドロップカラー なし
if ( ImageMode!=0 ) // 0;カラー 1;白黒
DropColorSetView(0);
break;
case('X'):
//----------- ドロップカラー R
if ( ImageMode!=0 ) // 0;カラー 1;白黒
DropColorSetView(1);
break;
case('Y'):
//----------- ドロップカラー G
if ( ImageMode!=0 ) // 0;カラー 1;白黒
DropColorSetView(2);
break;
case('Z'):
//----------- ドロップカラー B
if ( ImageMode!=0 ) // 0;カラー 1;白黒
DropColorSetView(3);
break;
}
return(r);
}
/*************************************
(下)右部サブルーチン
*************************************/
int cb3_sizesub1(ty,xx,yy,s,ii,ll,hh,st,sub)
int ty,xx,yy,ii,hh,ll,s;
UNchar *st;
void (*sub)();
{
int i,r;
UNchar *M;
if ( ty==0 ){
M=(void*)InputStr((xx&0xFFF0)+2,(yy&0xFFF0)+2,st,5,0,2);
CRTVDISP();
if ( M[0]==0 && M[1]==255 ){
(*sub)(ii);
r=1;
} else {
i=(int)(atof(M)*(double)s);
if ( i<ll || i>hh ){
(*sub)(ii);
r=1;
} else {
(*sub)(i);
r=0;
}
}
} elif ( ty<=2 ){
r=kazu_move(((ty==1)?xx:xx-16)&0xFFF0,yy&0xFFF0,0,ii,ll,hh,sub);
} else {
r=kazu_move(xx&0xFFF0,yy&0xFFF0,-1,ii,ll,hh,sub);
}
return(r);
}
/*+++++++++++++++++++++++++++++++*/
void cb3_sub1(int l)
{
BrightSetDraw(l+128);
}
/*++++++++++*/
void cb3_sub2(int l)
{
if ( jxscanner==_JX350_ ){
// JX350
if ( ImageMode==0 ){
// カラー
LightSetDraw(-1,l+0x8000,l+0x8000,l+0x8000);
} else {
LightSetDraw(l+0x8000,-1,-1,-1);
}
} else {
if ( ImageMode==0 ){
// カラー
LightSetDraw(-1,l+0x8000,-1,-1);
} else {
LightSetDraw(l+0x8000,-1,-1,-1);
}
}
}
/*++++++++++*/
void cb3_sub3(int l)
{
if ( jxscanner==_JX350_ ){
// JX350
LightSetDraw(-1,l+0x8000,l+0x8000,l+0x8000);
} else {
LightSetDraw(-1,-1,l+0x8000,-1);
}
}
/*++++++++++*/
void cb3_sub4(int l)
{
if ( jxscanner==_JX350_ ){
// JX350
LightSetDraw(-1,l+0x8000,l+0x8000,l+0x8000);
} else {
LightSetDraw(-1,-1,-1,l+0x8000);
}
}
/*++++++++++*/
void cb3_sub5(int l)
{
if ( ImageMode==0 ){
// カラー
GammaSetView(-1,l,-1,-1);
} else {
GammaSetView(l,-1,-1,-1);
}
}
/*++++++++++*/
void cb3_sub6(int l)
{
GammaSetView(-1,-1,l,-1);
}
/*++++++++++*/
void cb3_sub7(int l)
{
GammaSetView(-1,-1,-1,l);
}
/*++++++++++*/
void cb3_sub7_(int l)
{
BarView(368/16+4,384/16,l*62/999 );
GammaSetView(-1,l,l,l);
}
/*++++++++++*/
void cb3_sub8(int l)
{
if ( ImageMode==0 ){
// カラー
ThreSetView(-1,l,-1,-1);
} else {
ThreSetView(l,-1,-1,-1);
}
}
/*++++++++++*/
void cb3_sub9(int l)
{
ThreSetView(-1,-1,l,-1);
}
/*++++++++++*/
void cb3_sub0(int l)
{
ThreSetView(-1,-1,-1,l);
}
/************************************************************
倍率ボタンチェック
[out] r= 0; 正常終了
1; キャンセル終了
99; 終了
*************************************************************/
int click_botton4( xx )
int xx;
{
int r;
void cb4_sub();
r=kazu_move(13*16,0,0,PreBai,0,3,cb4_sub); // x4 までにしておこう
return(r);
}
/*++++++++++*/
void cb4_sub(int l)
{
int i;
PreBai=l;
i=1<<PreBai;
if ( PreBai!=0 ){
if ( PrePX>(232-(232/i)) )
PrePX=232-(232/i);
if ( PrePY>(480-(480/i)) )
PrePY=480-(480/i);
}
PosDedraw();
PreviewView();
PosSetDraw(PreX1,PreY1,PreX2,PreY2,-1);
}
/************************************************************
縦バー(ボタン)
[out] r= 0; 正常終了
1; キャンセル終了
99; 終了
*************************************************************/
int click_botton6( yy,bt )
int yy,bt;
{
int i,j,r,sy,b,bi,yo,py,y;
void cb6_sub1();
if ( bt==0 ){
if ( PreBai==0 ){
r=kazu_move(0,yy*16,1,PrePY/8,PrePY/8,PrePY/8,cb6_sub1);
} else {
i=1<<PreBai;
j=( yy==1 )?1:2;
r=kazu_move(0,yy*16,j,PrePY/8,0,(480/8-(480/8/i))+1,cb6_sub1);
}
} else {
bi=1<<PreBai;
j=PrePY *(30*16-32)/480 +32 ;
i=480/bi *(30*16-32)/480 +j;
if ( yy<j || yy>i )
return(0);
yo=-1;
sy=yy;
py=PrePY;
while( MS_LSW()!=0 && (b=MS_RSW())==0 ){
_dos_change_pr();
yy=( i=_ms_curgt_() )&0xFFFF;
if ( yo==yy )
continue;
yo=yy;
y=(yy-sy)*480/(30*16-32);
j=py+y;
if ( j<0 )
j=0;
if ( j>=(480-(480/bi)) )
j=(480-(480/bi))-1+1;
if ( PrePY!=j ){
PrePY=j;
PosDedraw();
PreviewView();
PosSetDraw(PreX1,PreY1,PreX2,PreY2,-1);
CRTVDISP();
}
}
r=0;
}
return(r);
}
/*++++++++++*/
void cb6_sub1(int l)
{
int i;
PosDedraw();
i=1<<PreBai;
PrePY=l*8;
if ( PreBai!=0 ){
if ( PrePY>=(480-(480/i)) )
PrePY=(480-(480/i))-1+1;
}
PreviewView();
PosSetDraw(PreX1,PreY1,PreX2,PreY2,-1);
}
/************************************************************
横バーボタン
[out] r= 0; 正常終了
1; キャンセル終了
99; 終了
*************************************************************/
int click_botton7( xx,bt )
int xx,bt;
{
int i,j,r,xo,sx,b,x,bi,yy,px;
void cb7_sub1();
if ( bt==0 ){
if ( PreBai==0 ){
r=kazu_move(xx*16,31*16,1,PrePX/8,PrePX/8,PrePX/8,cb7_sub1);
} else {
i=1<<PreBai;
j=( xx==1 )?1:2;
r=kazu_move(xx*16,31*16,j,PrePX/8,0,(232/8-(232/8/i))+1,cb7_sub1);
}
} else {
bi=1<<PreBai;
j=PrePX *(15*16-32)/232 +32;
i=232/bi *(15*16-32)/232 +j;
if ( xx<j || xx>i )
return(0);
xo=-1;
sx=xx;
px=PrePX;
while( MS_LSW()!=0 && (b=MS_RSW())==0 ){
_dos_change_pr();
yy=( i=_ms_curgt_() )&0xFFFF;
xx=i>>16;
if ( xo==xx )
continue;
xo=xx;
x=(xx-sx)*232/(15*16-32);
j=px+x;
if ( j<0 )
j=0;
if ( j>=(232-(232/bi)) )
j=(232-(232/bi))-1+1;
if ( PrePX!=j ){
PrePX=j;
PosDedraw();
PreviewView();
PosSetDraw(PreX1,PreY1,PreX2,PreY2,-1);
CRTVDISP();
}
}
r=0;
}
return(r);
}
/*++++++++++*/
void cb7_sub1(int l)
{
int i;
PosDedraw();
i=1<<PreBai;
PrePX=l*8;
if ( PreBai!=0 ){
if ( PrePX>=(232-(232/i)) )
PrePX=(232-(232/i))-1+1;
}
PreviewView();
PosSetDraw(PreX1,PreY1,PreX2,PreY2,-1);
}
/************************************************************
縦横バー
[out] r= 0; 正常終了
1; キャンセル終了
99; 終了
*************************************************************/
int click_bar( xx,yy )
int xx,yy;
{
int i,j,r,yo,xo,sx,sy,x,y,bi,px,py;
bi=1<<PreBai;
xo=-1;
yo=-1;
sx=xx;
sy=yy;
px=PrePX;
py=PrePY;
MsPat(7);
while( MS_RSW()!=0 ){
_dos_change_pr();
yy=( i=_ms_curgt_() )&0xFFFF;
xx=i>>16;
if ( xo==xx && yo==yy )
continue;
xo=xx;
yo=yy;
x=(xx-sx)/bi;
y=(yy-sy)/bi;
i=px-x;
if ( i>=(232-(232/bi)) )
i=(232-(232/bi))-1+1;
if ( i<0 )
i=0;
j=py-y;
if ( j>=(480-(480/bi)) )
j=(480-(480/bi))-1+1;
if ( j<0 )
j=0;
if ( PrePX!=i || PrePY!=j ){
PrePX=i;
PrePY=j;
PosDedraw();
PreviewView();
PosSetDraw(PreX1,PreY1,PreX2,PreY2,-1);
CRTVDISP();
}
}
MsPat(0);
r=0;
return(r);
}